﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using ALE_Server.EC;

namespace ALE_Server
{
    [ServiceContract]
    public interface ALEService
    {
        [OperationContract]
        void Define(string specName, ECSpec spec);

        [OperationContract]
        void Undefine(string specName);

        [OperationContract]
        ECSpec GetECSpec(string specName);

        [OperationContract]
        IList<string> GetECSpecNames();

        [OperationContract]
        void Subscribe(string specName, string NotificationUrl);

        [OperationContract]
        void UnSubscribe(string specName, string NotificationUrl);

        [OperationContract]
        ECReports Poll(string specName);

        [OperationContract]
        ECReports Immediate(ECSpec spec);

        [OperationContract]
        IList<string> GetSubscribers(string specName);

        [OperationContract]
        string GetStrandardVersion();

        [OperationContract]
        string GetVendorVersion();
    }
}
